import pytest

from common.zy_read_add_emp_json_tools import read_json_data
from config import TEL, BASE_PATH
from common.db_tools import DBTools
from common.assert_tools import commom_assert
from common.get_header_tools import get_header
from api.ihrm_emp_managerf_api import EmpManagerApi


# 定义 添加员工测试类  --  测试脚本层
class TestAddEmp:
    def setup_class(self):
        self.emp = EmpManagerApi()  # 创建实例
        # 准备请求头  - 调用自己封装的工具 获取请求头
        self.req_header = get_header()
        # 添加员工之前，将 实现添加员工要用的那个手机号 删除！  - 所有方法执行之前
        DBTools.iud("delete from bs_user where mobile='18812345678';")

    def teardown(self):
        # 添加员工测试方法执行结束之后，将 测试用的 手机号对应的那条记录 删除！
        DBTools.iud("delete from bs_user where mobile='18812345678';")

    filename = BASE_PATH+"/data/zy_add_emp.json"
    add_emp_data = read_json_data(filename)

    @pytest.mark.parametrize("desc, req_body, ststus_code, success, code, message", add_emp_data)
    # 定义 测试方法 - 添加
    def test01_add_ok_must_params(self, desc, req_body, ststus_code, success, code, message):
        resp = self.emp.add_emp(self.req_header, req_body)
        print(desc, ":", resp.json())
        #调用断言方法
        commom_assert(resp, ststus_code, success, code, message)